package com.qf.lyw1225.springboot.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.qf.lyw1225.springboot.dao.UserMapper;
import com.qf.lyw1225.springboot.entity.User;
import com.qf.lyw1225.springboot.service.UserService;
import com.qf.lyw1225.springboot.utils.Result;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

/**
 * @author HP
 */
@Service
public class UserServiceImpl implements UserService {

    @Resource
    private UserMapper userMapper;



    /**
     * 更新用户信息
     * 此方法用于更新用户数据，可以将传入的User对象中的信息
     * 同步到系统中的相应用户记录，以保持数据的最新状态
     *
     * @param user 需要更新的用户对象，包含新的用户信息
     */
    @Override
    public Result<User> update(User user) {
        int i = userMapper.updateById(user);
        if (i > 0 ){
             return Result.success(user);
         }else {
             return Result.error("更新失败");
         }
    }

    /**
     * 分页查询
     *
     * @param pageNum
     * @param pageSize
     * @param username
     * @return
     */
    @Override
    public Page<User> queryPage(Integer pageNum, Integer pageSize, String username) {
        // 设置默认值
        if (pageNum == null || pageNum < 1 ) {
            pageNum = 1;
        }
        if (pageSize == null || pageSize < 1 || pageSize > 10) {
            pageSize = 10;
        }

        Page<User> page = new Page<>(pageNum, pageSize);
        QueryWrapper<User> userQueryWrapper = new QueryWrapper<>();
        userQueryWrapper.like("username", username);

        return userMapper.selectPage(page, userQueryWrapper);
    }


}
